www.gusucode.com > VC++ 编写软件自动升级服务源代码 > VC++ 编写软件自动升级服务源代码/gusucode/updater_src0.8.1.6/ModeFullPropHtmlMessage.cpp

    /********************************************************************
	created:	2004/11/07
	created:	7:11:2004   12:19
	filename: 	ModeFullPropHtmlMessage.cpp
	file path:	Updater
	file base:	ModeFullPropHtmlMessage
	file ext:	cpp
	author:		Geert van Horrik
	
	purpose:	
*********************************************************************/

//*********************************************************************
// Includes
//*********************************************************************

#include "stdafx.h"
#include "Updater.h"
#include "ModeFullPropHtmlMessage.h"
#include "ModeFullSheet.h"

//*********************************************************************
// MESSAGE MAP
//*********************************************************************

BEGIN_MESSAGE_MAP(CModeFullPropHtmlMessage, CPropertyPageEx)
	ON_WM_TIMER()
END_MESSAGE_MAP()

//*********************************************************************
// CONSTRUCTOR & DESTRUCTOR
//*********************************************************************

IMPLEMENT_DYNAMIC(CModeFullPropHtmlMessage, CPropertyPageEx)

//=====================================================================

CModeFullPropHtmlMessage::CModeFullPropHtmlMessage()
	: CPropertyPageEx(CModeFullPropHtmlMessage::IDD)
{
	// Init singleton classes
	m_pFunctions = CFunctions::Instance();
	m_pSettings = CSettings::Instance();
	m_pUpdateInfo = CUpdateInfo::Instance();
	m_pLanguage = CLanguage::Instance();

	// Set title
	m_strHeaderTitle = m_pLanguage->GetString(IDS_FULL_HTMLMESSAGE_TITLE);
	CString sTemp;
	sTemp.Format(m_pLanguage->GetString(IDS_FULL_HTMLMESSAGE_SUBTITLE),
				 m_pSettings->GetAppName());
	m_strHeaderSubTitle = sTemp;
}

//=====================================================================

CModeFullPropHtmlMessage::~CModeFullPropHtmlMessage()
{
}

//*********************************************************************
// PUBLIC FUNCTIONS
//*********************************************************************

//*********************************************************************
// PRIVATE FUNCTIONS
//*********************************************************************

void CModeFullPropHtmlMessage::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPageEx::DoDataExchange(pDX);
	DDX_Control(pDX, htmlMessage, m_htmlMessage);
}

//=====================================================================

BOOL CModeFullPropHtmlMessage::OnInitDialog()
{
	// Call original function
	CPropertyPageEx::OnInitDialog();

	// Return TRUE unless you want to set focus to a control
	return TRUE;
}

//=====================================================================

BOOL CModeFullPropHtmlMessage::OnSetActive()
{
	// Call original function
	CPropertyPageEx::OnSetActive();

	// Navigate to the right page
	m_htmlMessage.Navigate(m_pUpdateInfo->GetHtmlMessageURL(), NULL, NULL, NULL, NULL);

	// Set countdown value
	m_iCountDown = m_pUpdateInfo->GetHtmlMessageTime();
	if (m_iCountDown > 0)
	{
		// Increase timer value
		m_iCountDown++;

		// Call timer function once yourself
		OnTimer(TIMER_COUNTDOWN);

		// Start timer
		SetTimer(TIMER_COUNTDOWN, 1000, NULL);
	}

	// Return value
	return TRUE;
}

//=====================================================================

void CModeFullPropHtmlMessage::OnTimer(UINT nIDEvent)
{
	// Declare variables
	CString sTemp;

	// Did we receive the right timer event?
	if (nIDEvent == TIMER_COUNTDOWN)
	{
		// Get parent
		CModeFullSheet * pParent = (CModeFullSheet *)GetParent();

		// Lower the timer
		m_iCountDown--;

		// Set up text
		if (m_iCountDown > 0)
		{
			// Show next text + remaining time
			sTemp.Format(_T("%s (%d)"), m_pLanguage->GetString(IDS_GENERAL_NEXT), m_iCountDown);
		}
		else
		{
			// Show normal next text
			sTemp = m_pLanguage->GetString(IDS_GENERAL_NEXT);

			// Enable the button
			pParent->SetWizardButtons(PSWIZB_NEXT);

			// Kill timer
			KillTimer(TIMER_COUNTDOWN);
		}

		// Set text
		CWnd * pNext = pParent->GetDlgItem(ID_WIZNEXT);
		if (pNext)
			pNext->SetWindowText(sTemp);
	}
}

//=====================================================================

LRESULT CModeFullPropHtmlMessage::OnWizardNext()
{
	// Get parent
	CModeFullSheet * pParent = (CModeFullSheet *)GetParent();

	// Start next task
	pParent->PressButton(PSBTN_NEXT);

	// Don't change page yourself
	return -1;
}

//=====================================================================